Java mobile code

نویسنده

  • David G. Messerschmitt
چکیده

Supplementary section for Understanding Networked Applications: A First Course, Morgan Kaufmann, 1999. Copyright notice: Permission is granted to copy and distribute this material for educational purposes only, provided that this copyright notice remains attached. An illustrative example of MC middleware is Java from Sun Microsystems [Arn96][Fla96]. Java is several things. First and foremost, it is a “pure” object-oriented language, one that unlike C++ requires programs to be composed exclusively of objects. Java also defines an entire mobile code system, including a virtual machine and a set of libraries. MC and MO are generally based on objects and components, and Java is an example of this. The Java language is modeled after C++, but with some important differences. First, Java is unabashedly object-oriented, as it dictates that programs are composed of collaborating objects (C++ doesn’t). Second, Java attempts to “clean up” C++ by removing features that make programs more difficult to write and read, and more importantly and make it unsafe as a mobile code language (see the sidebar "Java and Security"). Third, Java adds direct language support for some useful features for distributed computing applications, such as threads. The Java Virtual Machine (VM) defines the instruction set of a virtual microprocessor—one different than most actual microprocessors—and then emulates this virtual processor on the real microprocessor. (A microprocessor that natively implements VM bytecode instructions is also possible.) The primitive instructions for the VM are written in bytecode, composed of instructions for the VM. A Java compiler translates the Java source code into bytecode that can then be exe-

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Java Mobile Code Security by Bytecode Analysis

Since mobile code can migrate from a remote site to a host and can interact with the resources and facilities of the host, security becomes the key to the success of mobile code computation. Existing mobile code security mechanisms such as access control are not able to fully address the import security properties of the host including confidentiality and integrity. And these practices tend to ...

متن کامل

Security Risks in Java-based Mobile Code Systems

Java is the predominant language for mobile agent systems, both for implementing mobile agent execution environments and for writing mobile agent applications. This is due to inherent support for code mobility by means of dynamic class loading and separable class name spaces, as well as a number of security properties, such as language safety and access control by means of stack introspection. ...

متن کامل

Mobile Code Security by Java Bytecode Instrumentation

Mobile code provides significant opportunities and risks. Java bytecode is used to provide executable content to web pages and is the basis for dynamic service configuration in the Jini framework. While the Java Virtual Machine includes a bytecode verifier that checks bytecode programs before execution, and a bytecode interpreter that performs run-time tests, mobile code may still behave in way...

متن کامل

Proof Linking: An Architecture for Modular Veri cation of Dynamically-Linked Mobile Code

Security aws are routinely discovered in commercial implementations of mobile code systems such as the Java Virtual Machine (JVM). Typical architectures for such systems exhibit complex interdependencies between the loader, the ver-iier, and the linker, making them diicult to craft, validate, and maintain. This reveals a software engineering challenge that is common to all mobile code systems i...

متن کامل

Mobile Process Resumption In Java Without Bytecode Rewriting

In this paper we describe an implementation of mobile processes with polymorphic interfaces in the ProcessJ language. ProcessJ is a process oriented language based on CSP and the π-calculus. In the paper we demonstrate the translation of ProcessJ to Java/JCSP and illustrate how to implement mobile processes with polymorphic interfaces without rewriting bytecode; this requires some clever code g...

متن کامل

Secure Execution of Mobile Java using Static Analysis and Proof Carrying Code

We consider the problems raised by the use of mobile code in e-Science. If a user submits a program for execution on a remote machine then problems can arise if the program misbehaves, for example by using too much memory or taking too long to execute. We describe methods which can be used to obtain unforgeable a priori guarantees that a mobile program will behave in a reasonable manner. We hav...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1999